﻿using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Zhaoxi.SqlSugar.Common;

namespace Zhaoxi.SqlSugarAdvanced.DbOperate
{
    // <summary>
    /// 数据库管理 - CS端的数据库管理用这个就可以了
    /// </summary>
    public class DbManger
    {
        /// <summary>
        /// 如果没有多个数据库的话，只配这一个就可以了
        /// 可以获取到数据库操作连接 - 这是一个数据库连接属性
        /// </summary>
        public static SqlSugarScope Db = new SqlSugarScope(new ConnectionConfig()
        {
            ConfigId = "default", // 默认的配置ID
            DbType = DbType.SqlServer, // 数据库类型
            ConnectionString = CustomConnectionConfig.ConnectionString001, // 数据库连接字符串
            IsAutoCloseConnection = true // 是否自动关闭连接
        },
         db =>
         {
             //基础库AOP
             db.Aop.OnLogExecuting = (s, p) => // 用于记录sql输出
             {

             };

             //SQL报错：日志记录 - 执行数序4
             db.Aop.OnError = (exp) =>
             {
                 //exp.sql 这样可以拿到错误SQL，性能无影响拿到ORM带参数使用的SQL 
                 //5.0.8.2 获取无参数化 SQL  对性能有影响，特别大的SQL参数多的，调试使用
                 //UtilMethods.GetSqlString(DbType.SqlServer,exp.sql,exp.parameters) 
                 Console.WriteLine($"Sql执行报错了，异常消息：{exp.Message}");
             };
         });


    }
}
